Masala #1141

Xotira 64 MB Vaqt 1000 ms Qiyinchiligi 67 %
3.0 (Baholar 4)
14

  

G'alati o'rmon

Bu interaktiv vazifa.

O'rmonchi Bilmasvoy daraxt kesmoqda. U daraxt kesayotgan o'rmon NNN*N katakdan tashkil topgan bo'lib, har bir katakda bittadan daraxt mavjud. U daraxtlarni 555*5 shaxmat doskasi ko'rinishda kesib chiqdi. Bu yerda har bir katak MMM*M maydondan iborat. To'liqroq tushunishingiz uchun quyidagi rasmga e'tibor bering:

Bu yerda qora maydonlar daraxt kesilgan joylar.

 O'rmonchi uyiga qaytayotib asbob-uskunalarini olishni unutib qo'ydi. Lekin uning ish qurollari rasmdagi qora nuqta - ya'ni shaxmat shaklida kesilgan daraxtlarning markazida joylashganini biladi. Bilmasvoyga anjomlarini topishga yordam beruvchi dastur tuzing.


Kiruvchi ma'lumotlar:

Kirish faylining birinchi qatorida uchta butun son N, x va y butun sonlari mavjud. (1N,x,y2109)(1 \le N, x, y \le 2*10^9).

Bu yerda N kvadrat shaklidagi o'rmonning bir tomoni, x va y rasmda qora bilan belgilangan istalgan koordinatadan biri.

Siz dasturga quyidagicha ko'rinishda so'rov yuborishingiz mumkin:

"? x y""? \ x \ y". Bu yerda x va y o'rmonning istalgan koordinatasi. So'rovga javoban siz so'ragan koordinatada daraxt kesilgan bo'lsa  ″true″, aks holda ″false″ ko'rinishida javob olasiz. Agar siz yuborgan koordinata mavjud bo'lmasa, dastur shu zahoti tugaydi va "Presentation error""Presentation \ error" xatoligini olasiz.

Dasturga ko'pi bilan 150 ta so'rov yuborishingiz mumkin. Agarda so'rovlar soni oshib ketsa, dastur shu zahoti tugaydi va  "Time limit""Time \ limit" xatoligini qaytaradi.


Chiquvchi ma'lumotlar:

Javobni topganingizdan so'ng, "! x y""! \ x \ y" ko'rinishida so'rov yuborishingiz va dasturni tugatishingiz zarur.

ESLATMA: Interaktiv masalada sizning javobingizni hakamlar hay’ati qabul qila olishi uchun siz har bir so’rovingiz oxirida

  • Agar Pascal tilida ishlagan bo’lsangiz: flush(output)
  • Agar C/C++ tilida ishlagan bo’lsangiz fflush(stdout) yoki cout.flush()
  • Agar Java tilida ishlagan bo’lsangiz System.out.flush()
  • Agar pythonda ishlagan bo’lsangiz sys.stdout.flush()
  • Agar C# tilida ishlagan bo’lsangiz Console.Out.Flush()

Buyruqlardan birini yozishingiz kerak bo’ladi!


Misollar
# input.txt output.txt
1
20 4 9
false
true
true
? 2 9
? 9 14
? 11 9
! 10 9
Izoh:

       

Daraxtlar quyidagicha ko'rinishda kesilgan bo'lishi mumkin.

Unutmang, har doim M soni M3M \ge 3  bo'lgan toq sondir.

Yechimini yuborish
Bu amalni bajarish uchun tizimga kiring, agar profilingiz bo'lmasa istalgan payt ro'yxatdan o'tishingiz mumkin